// pages/good/search.js
const api = require("../../request/api")
const request = require("../../request/request")
const util = require("../../utils/util")
const App = getApp();
Page({

    /**
     * 页面的初始数据
     */
    data: {
        barHeight: App.globalData.paddingTop,

        // 上拉加载标识
        noMore: false,

        keyword_value: '',
        uid: '',
        page: 1,
        page_size: 6,

        // 搜索商品的列表
        search_list: [],

        // 所有热词
        hot_search_list: [{
            text: '寿星补汁'
        }, {
            text: '钻山风合剂'
        }, {
            text: '参茸补血酒'
        }, {
            text: '灵芝孢子'
        }, {
            text: '阳春口服液'
        }
        ],

        // 热词分类
        hot_search_input_hot: [],
        hot_search_input_normal: [],

        styledata: {
            "bg_color": "white",
            "color": "#000",
            "leftflag": true,
            "name": "商品搜索"
        },

        ifShowTop: false,

        question_list: [
            // {
            //     id: 0,
            //     name: '月经颜色发黑正常吗？',
            //     poster: '',
            //     video: 'http://img.qian.gzzsu.com/shop/20240130/cyrxp6inlki9sd1fkr.mp4'
            // },
            // {
            //     id: 1,
            //     name: '月经有结块正常吗？',
            //     poster: '',
            //     video: 'http://img.qian.gzzsu.com/shop/20240130/cyrxm3lb16cuoh2ggm.mp4'
            // },
            // {
            //     id: 2,
            //     name: '月经量多少是正常？如何判断经量的多少?',
            //     poster: '',
            //     video: 'http://img.qian.gzzsu.com/shop/20240130/cyrpawiux1uzl6jzfi.mp4'
            // },
            // {
            //     id: 3,
            //     name: '月经量太少正常吗?',
            //     poster: '',
            //     video: 'http://img.qian.gzzsu.com/shop/20240130/cyrp3phoi6484xditu.mp4'
            // },
            // {
            //     id: 4,
            //     name: '来月经了可以洗头吗？',
            //     poster: '',
            //     video: 'http://img.qian.gzzsu.com/shop/20240126/cyok980f7m5miawd3k.mp4'
            // },
        ],

        controlStatus: false
    },

    isReload: false,

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

        this.setData({
            controlStatus: App.globalData.controlStatus,
            uid: App.globalData.uid || util.getAppValue('userInfo').uid,
        })
        this.get_hot_search_input()

        this.getVideoData()
    },

    // 选取几个作为火热关键词
    get_hot_search_input() {
        this.setData({
            hot_search_input_hot: this.data.hot_search_list.slice(0, 3),
            hot_search_input_normal: this.data.hot_search_list.slice(3)
        })
    },

    // 收集关键字
    keyword_input(e) {
        this.setData({
            keyword_value: e.detail.value
        })
    },

    // 获取问答视频数据
    async getVideoData() {

        let params = {
            type: 'articles'
        };

        let res = await request.post(api.getSwiper, params)

        let newres = res.filter(item => {
            if (item.media_type == 'video')
                return true
        });

        // console.log(res, newres);
        this.setData({
            question_list: newres
        })
        // console.log(this.data.swiper_list)
    },

    // 点击刷新
    changeHandle() {
        if (this.data.move == 1) return util.showToast('您操作太快了')
        this.setData({
            move: 1
        })
        setTimeout(async () => {
            await this.getVideoData()

            this.setData({
                move: 0
            })
        }, 1020);
    },

    gotoAnswerVideo(e) {
        let poster = e.currentTarget.dataset.poster
        let text = e.currentTarget.dataset.text
        let url = e.currentTarget.dataset.url
        let id = e.currentTarget.dataset.id



        wx.navigateTo({
            url: `/pages/videoplay/video?url=${url}&text=${text}&poster=${poster}&id=${id}`,
            success: (result) => {

            },
            fail: () => { },
            complete: () => { }
        });

    },

    // 清空商品列表
    clearList() {
        this.setData({
            search_list: [],
            keyword_value: '',
            page: 1
        })
        wx.pageScrollTo({
            // selector: ".more-good-title",
            // offsetTop: -100,
            scrollTop: 0
        })
    },

    // 点击搜索 下拉刷新 需要重置页码和标识需要多此一步，防止页面闪动请求成功再原数组清空
    click_search() {
        this.setData({
            page: 1,
            noMore: false,
        })
        this.isReload = true
        this.searching_good()
        wx.pageScrollTo({
            // selector: ".more-good-title",
            // offsetTop: -100,
            scrollTop: 0
        })
    },

    // 利用关键字发起搜索请求
    async searching_good() {
        let params = {
            key: this.data.keyword_value,
            page: this.data.page,
            limit: this.data.page_size,
            type: 'default',
        }
        let res = await request.post(api.goods_search, params)

        for (var i = 0; i < res.length; i++) {
            let mx = parseInt(Math.random() * 10) / 10
            let youhui = res[i].sell_price * (mx * 0.04 + 0.08)
            res[i].youhui = youhui.toFixed(2)
        }

        // 如果是刷新清空原数组
        if (this.isReload) {
            this.setData({
                search_list: []
            })
            this.isReload = false
        }

        // 如果小于每页页数说明下一页将无数据 必定需要设置noMore，内部进一步判断是否数组置空
        if (res.length < this.data.page_size) {
            this.setData({
                noMore: true
            })

            if (this.data.page == 1 && res.length == 0) {
                util.showToast('暂无更多相关商品')
            } else if (this.data.page > 1) {
                util.showToast('暂无更多相关商品')
            }
            // return

            // if (res.length == 0) {

            //         this.setData({
            //             noMore: true
            //         })

            //     util.showToast('暂无更多相关商品')
            //     return
            // }
            // // 处理第一页就小于 this.data.page_size的情况
            // else {

            //     let list = this.data.search_list
            //     let new_list = list.concat(res)
            //     this.setData({
            //         search_list: new_list,
            //     })
            //     // 避免第一页就提示 用户体验不好
            //     if (this.data.page != 1) {
            //         this.setData({
            //             noMore: true
            //         })
            //         util.showToast('暂无更多相关商品')
            //     }
            //     return
            // }
        }
        // for (var i = 0; i < res.length; i++) {
        //     let mx = parseInt(Math.random() * 10) / 10
        //     let youhui = res[i].sell_price * (mx * 0.04 + 0.08)
        //     res[i].youhui = youhui.toFixed(2)
        // }

        let list = this.data.search_list
        let new_list = list.concat(res)
        this.setData({
            search_list: new_list,
            // noMore: true
        })
    },

    // 点击热词发起搜索
    hot_searching(e) {
        this.setData({
            keyword_value: e.currentTarget.dataset.text,
            page: 1,
            noMore: false,
            search_list: []
        })
        this.searching_good()
        wx.pageScrollTo({
            // selector: ".more-good-title",
            // offsetTop: -100,
            scrollTop: 0
        })
    },

    // 查看详情
    go_detail(e) {
        let id = e.detail.currentTarget.dataset.id
        if (!id) {
            util.showToast('该商品暂无记录')
            return
        }
        wx.navigateTo({
            url: '/pages/good/detail?id=' + id,
        })
    },

    // 商品列表组件点击加入购物车
    async cart_add(e) {
        if (!this.data.uid) {
            util.showToast('请登录后再添加购物车哦')
            return
        }
        let id = e.detail.currentTarget.dataset.id
        let goodDetail = await request.post(api.goods_details, { id })
        if (goodDetail.store_nums <= 0) {
            wx.showToast({
                title: '该商品暂无库存，请挑选别的心仪商品吧',
                icon: 'none',
                duration: 2000
            });
            return
        }

        // 筛选最低价格规格id，默认选最低规格
        let temArr = []
        goodDetail.products_array.forEach(item => {
            temArr.push(item.sell_price)
        });
        let lowestProPrice = Math.min(...temArr)
        let lowestIndex = temArr.indexOf(lowestProPrice)
        let skuid = goodDetail.products_array[lowestIndex].id
        // console.log('skuid', skuid);

        let params = {
            goods_id: id,
            uid: this.data.uid,
            goods_sku_id: skuid
        }
        let res = await request.post(api.cart_add, params)
        if (res) {
            let cartRes = await request.post(api.cart_list, { uid: this.data.uid })
            // console.log(cartRes);
            App.globalData.cartnum = cartRes.total_goods_nums

            // this.handleChangeCart()
        }
        util.showToast("已加入购物车")
    },

    // 获取滑动位置
    onPageScroll: function (e) {
        // wx.getSystemInfoSync().windowHeight 系统手机窗口高度
        // 当页面滑动距离大于一屏的高度时显示回到顶部控件
        this.setData({
            ifShowTop: e.scrollTop > wx.getSystemInfoSync().windowHeight ? true : false
        });
    },

    // 下拉刷新回调
    pullrefresh() {
        util.showLoading('正在刷新')
        setTimeout(async () => {
            await this.click_search()
            util.hideLoading()
            wx.stopPullDownRefresh()
        }, 1000);
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {
        if (this.data.search_list.length == 0 && this.data.keyword_value == '') {
            wx.stopPullDownRefresh()
            return
        }
        this.pullrefresh()
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

        // 避免上拉直接加载商品
        if (this.data.search_list.length == 0) return

        if (!this.data.noMore) {
            this.setData({
                page: ++this.data.page
            })
            this.searching_good()
        }
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})